package com.eonmind.common.provider.dto;

import com.eonmind.common.contract.data.request.PageRequest;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 会员Dto
 *
 * @author zbj
 * @since 2025/5/20 21:17
 **/
@Data
@ToString
public class VipDto {

    /**
     * 套餐数据
     */
    @Data
    @ToString
    public static class PackageSearchDto{
        /**
         * 套餐名
         */
        private String name;
        /**
         * 最低价
         */
        private Double lowestP;
        /**
         * 最高价
         */
        private Double highestP;
        /**
         * 排序类型
         */
        private Integer sortType;
        /**
         * 套餐类型
         */
        private Integer packageType;
        /**
         * 分页信息
         */
        private PageRequest page = new PageRequest();
    }

    /**
     * 判断AI功能是否能使用
     */
    @Data
    @ToString
    @Accessors(chain = true)
    public static class VipBackToAiIsAcResponse{
        /**
         * 是否通过
         */
        private Boolean isAccess;

        /**
         * 描述使用详情
         */
        private String desc;

        /**
         * 本次消费
         */
        private Integer cost;
    }

    /**
     * 用户购买详情
     */
    @Data
    @ToString
    @Accessors(chain = true)
    public static class PayToVipOrderSucDto{
        /**
         * 套餐id
         */
        private Long planId;

        /**
         * 用户id
         */
        private Long userId;

        /**
         * 购买数量
         */
        private Integer num;

        /**
         * 支付金额
         */
        private Double paymentAmount;

        /**
         * 订单号
         */
        private Long paymentId;

        /**
         * 支付方式 微信、支付宝
         */
        private String paymentMethod;
    }

    /**
     * 用户AI使用详情
     */
    @Data
    @ToString
    @Accessors(chain = true)
    public static class VipAiServerDesc{
        /**
         * 模型id
         */
        private Long modelId;

        /**
         * 用户id
         */
        private Long userId;

        /**
         * 任务类型
         */
        private Integer type;

        /**
         * 模型名称
         */
        private String modelName;

        /**
         * 消耗积分
         */
        private Integer cost;

    }

}
